package extras.salvation.api.wrappers;

import java.awt.Color;

/**
 * @author Salvation
 * @version 1.0
 * @since 20-08-2011
 */
public final class SkillInformation {

	private String name;
	private int skill, startLevel, currentLevel, gainedLevel, startExperience,
			currentExperience, gainedExperience, gainedExperienceHour,
			toNextLevelExperience, to99Experience, toNextLevelPercent,
			to99Percent;
	private long timeToLevel, timeTo99;
	private Color color, colorFont;

	public SkillInformation(String name, int skill, int startLevel,
			int currentLevel, int gainedLevel, int startExperience,
			int currentExperience, int gainedExperience,
			int gainedExperienceHour, int toNextLevelExperience,
			int to99Experience, int toNextLevelPercent, int to99Percent,
			long timeToLevel, long timeTo99, Color color, Color colorFont) {
		this.name = name;
		this.skill = skill;
		this.startLevel = startLevel;
		this.currentLevel = currentLevel;
		this.gainedLevel = gainedLevel;
		this.startExperience = startExperience;
		this.currentExperience = currentExperience;
		this.gainedExperience = gainedExperience;
		this.gainedExperienceHour = gainedExperienceHour;
		this.toNextLevelExperience = toNextLevelExperience;
		this.to99Experience = to99Experience;
		this.toNextLevelPercent = toNextLevelPercent;
		this.to99Percent = to99Percent;
		this.timeToLevel = timeToLevel;
		this.timeTo99 = timeTo99;
		this.color = color;
		this.colorFont = colorFont;
	}

	/**
	 * @author Salvation
	 * @return The name of this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public String getName() {
		return name;
	}

	/**
	 * @author Salvation
	 * @return The index of this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getSkill() {
		return skill;
	}

	/**
	 * @author Salvation
	 * @return The level in this Skill when the cached value was initialized.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getStartLevel() {
		return startLevel;
	}

	/**
	 * @author Salvation
	 * @return The level in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getCurrentLevel() {
		return currentLevel;
	}

	/**
	 * @author Salvation
	 * @return getCurrentLevel() - getStartLevel().
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getGainedLevel() {
		return gainedLevel;
	}

	/**
	 * @author Salvation
	 * @return The amount of experience in this Skill when the cached value was
	 *         initialized.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getStartExperience() {
		return startExperience;
	}

	/**
	 * @author Salvation
	 * @return The amount of experience in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getCurrentExperience() {
		return currentExperience;
	}

	/**
	 * @author Salvation
	 * @return getCurrentExperience() - getStartExperience().
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getGainedExperience() {
		return gainedExperience;
	}

	/**
	 * @author Salvation
	 * @return The level of this Skill when the cached value was initialized.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getGainedExperienceHour() {
		return gainedExperienceHour;
	}

	/**
	 * @author Salvation
	 * @return The amount of experience needed to the next level in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getExperienceToNextLevel() {
		return toNextLevelExperience;
	}

	/**
	 * @author Salvation
	 * @return The amount of experience needed to level 99 in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getExperienceTo99() {
		return to99Experience;
	}

	/**
	 * @author Salvation
	 * @return The percentage to the next level in this Skill, based on the base
	 *         experience at the current level in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getPercentToNextLevel() {
		return toNextLevelPercent;
	}

	/**
	 * @author Salvation
	 * @return The percentage to level 99 in this Skill, based on the base
	 *         experience at the current level in this Skill.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public int getPercentTo99() {
		return to99Percent;
	}

	/**
	 * @author Salvation
	 * @return The time in milliseconds to the next level in this Skill, based
	 *         on the rate of experience gained per hour.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public long getTimeToLevel() {
		return timeToLevel;
	}

	/**
	 * @author Salvation
	 * @return The time in milliseconds to level 99 in this Skill, based on the
	 *         rate of experience gained per hour.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public long getTimeTo99() {
		return timeTo99;
	}

	/**
	 * @author Salvation
	 * @return The primary colour of this Skill's Cape of Achievement.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public Color getColor() {
		return color;
	}

	/**
	 * @author Salvation
	 * @return The secondary colour - or trim - of this Skill's Cape of
	 *         Achievement.
	 * @see com.rsbuddy.script.methods.Skills
	 */
	public Color getFontColor() {
		return colorFont;
	}
}